#![doc = include_str!("../README.md")]
#![cfg_attr(docsrs, feature(doc_cfg))]

use clap::Parser;
use tracing::trace;
use wang_changelog::resolver::cli_args::CliArgs;
use wang_changelog::resolver::Resolver;
use wang_utils::logger::init_tracing;

fn main() -> anyhow::Result<()> {
    // 初始化日志
    init_tracing();
    // 解析命令行传参
    let mut args = CliArgs::parse();
    args.resolve();
    trace!("解析命令行传参:{args:?}");
    // 初始化解析器
    let mut resolver = Resolver::init(args)?;
    // 解析git历史
    resolver.resolve()?;
    // 解析后对文本进行处理，包括替换"break"为"重大更新"，以及反转提交顺序等
    resolver.handle()?;
    // 输出日志文件
    resolver.generate()?;
    // 提交新版本，这一步会进行git，并打上最新的tag
    resolver.commit()?;
    Ok(())
}
